With the rise of personal data communication devices such as data enabled cell phones supporting the Short Message Service (“SMS”) and the Multimedia Messaging Service (“MMS”), wireless Personal Digital Assistant's (“PDA”), personalized Instant Messaging (“IM”) and e-mail clients, there exists an acute need for organizations to execute multimedia application based two way communications. Particularly, there is a need for rich multimedia based communications that deliver the right content based on the personal data communication device multimedia capabilities and its current state using a single platform.
The mobile space is very fragmented when it comes to the multimedia capabilities of mobile devices, primarily because of the processing constraints on these devices and the large number of manufacturers in this space. Therefore, it is very difficult to create mobile applications across disparate devices. In addition, there is no simple answer to the question of how to acquire information on the capabilities of a mobile device in order to optimize the content delivered to the mobile device, especially if all the mobile application knows is the mobile device phone number, e-mail address or IM screen name. By optimized content, we mean delivering sounds using the best format the mobile device supports, or delivering images using the best resolution with the most functional format. The logic to acquire the capabilities of the mobile device has to be application specific. Even a task as simple as delivering a ringtone purchased by a user on a web site can be daunting since it may require the user to identify his device, not always an easy task, prior to even beginning the purchase process, for the right ringtone to be selected.
Illustrative examples of applications that benefit from this invention include: creating quiz and trivia applications to promote movies where ringtones and images are delivered as part of the application; delivering images of major moments in a game; mobile blog applications where users send in pictures taken with their mobile device.
Existing systems to capture device capability and to deliver multimedia content either perform their operations automatically with no possibility to customize the rendering based on the application (for example trans-coding images to the right size and right format based on the detected device) or these operations have to be custom programmed by a qualified programmer using professional programming languages such as Java or C#. Neither approach is well suited to letting an application designer develop a dialog such as:                If we know the user can receive an image on his device then send him an image;        If not, send a text message asking the user if his device can handle images;        Store the user response in the device capability repository for use in future communications;        If the user responded yes to the image question, send him an image; otherwise send him an alternative text message.        
The present invention enables anyone familiar with simple scripting languages, not just skilled programmers, to develop these kinds of application specific algorithms.
This invention, by making use of a multimedia enabled interpreter that can be programmed by a non programmer permits the development and deployment of high usability multimedia rich programs across a wide range of devices in a cost effective and time efficient manner.
Another problem a mobile application platform needs to address is making sure the device capabilities collected are still up-to date. Hence device capabilities needs to be sent on a regular basis to the device capability repository and the data kept current. If error conditions are detected, they need to be handled and retry logic performed. This is again better handled by having a scriptable interpreter that can be programmed with application specific knowledge.
Confirmation of delivery of multimedia is also often available, for example, when a user downloads a purchased ringtone. The interpreter that is described in this invention can programmatically respond to this confirmation, and more critically, can set timers that respond from not receiving download or delivery confirmation in a given time frame. For example, a common technique in the mobile space is to push a Wireless Application Protocol (“WAP”) Uniform Resource Location (“URL”) to a phone. But there are many reasons why this may fail, based on the user handset, the carriers, the subscriber service plan, the subscriber identity module (“SIM”). This invention allows the development of applications where the designer of the application can execute an alternative flow if the user does not download the page in a specific time frame, and for example, fall back on the more universally available SMS text messaging capabilities of the user handset. The text in the SMS message could then guide the user to access manually a specified mobile site that contains the data the user desired to download.
The same application design framework is used to create rich dialogs regardless of the message network used by the personal data communication device. This includes such diverse family of protocols such as SMS, MMS, e-mail, Multipurpose Internet Mail Extensions (“MIME”) enabled e-mail, IM, applications, etc.
Multimedia dialogs can be further created using a simple to use Graphical User Interface (“GUT”) design tool or directly via an XML based language. Different content can be specified using a declarative approach that is simple to understand by non-programmers.
This invention addresses many of the limitations of existing systems in one integrated system.